//
//  GlobalUtil.h
//  EliveClient
//
//  Created by Pierce on 2017/8/10.
//  Copyright © 2017年 Pierce. All rights reserved.
//

#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>

typedef NS_ENUM (NSInteger, AuthorizationForApplication){
    AuthorizationForApplicationCamera = 0, //相机
    AuthorizationForApplicationPhotos = 1, //相册
};

@interface NSString (Expand)




/**
 替换部分字符串为新的字符串
 
 @param removeString 要除掉的字符串（如空格）
 @param newString 替换的字符串
 @return 新的字符串
 */
-(NSString *)stringReplaceString:(NSString *)removeString toBeString:(NSString *)newString;


/**
 获取范围内的子字符串
 
 @param range 要替换的范围
 @return range范围内的子字符串
 */
-(NSString *)getSubStringWithRang:(NSRange)range;



/**
 替换隐藏手机号中中间几位
 
 @param signString 替换符号（如“****“，”----”）
 @return 替换隐藏手机号中中间几位
 */
-(NSString *)replaceTeleNumStringBySignString:(NSString *)signString;



/**
 获取MD5编码后字符串
 
 @param str 待编码
 @return 编码字符串
 */
+(NSString *)md5:(NSString *)str;


/**
 字典转字符串
 
 @param dict 字典
 @return 字符串
 */
+(NSString *)stringFromDict:(NSDictionary*)dict;




/**
 base64字符串转文本
 
 @param base64 base64字符串
 @return 文本
 */
+(NSString *)textFromBase64String:(NSString *)base64;


/**
 检查手机号格式是否正确
 
 @return 手机号格式是否正确
 */
-(BOOL)checkPhoneNumInput;



@end


@interface NSData (MD5Digest)

+(NSData *)MD5Digest:(NSData *)input;
-(NSData *)MD5Digest;

+(NSString *)MD5HexDigest:(NSData *)input;
-(NSString *)MD5HexDigest;

@end


@interface NSData (Utils)

- (NSString *)detectImageSuffix;

+ (NSData*) dataWithBase64EncodedString:(NSString*)string;



@end



@interface GlobalUtil : NSObject


/**
 获取UUID（UDID已经被苹果废除）
 
 @return 苹果手机通用唯一识别码 (Universally Unique Identifier)
 */
+(NSString *)getUUID;

/**
 获取设备号
 
 @return 设备的中文名称
 */
+ (NSString*)getDeviceVersion;

/**
 过滤html标签
 
 @param html 要过滤的html
 @return 结果
 */
+ (NSString *)filterHTML:(NSString *)html;



/**
 @abstract 根据size的大小来放大缩小UIImage.
 @param image 需要处理的UIImage.
 @param size 需要处理到的大小.
 @returns 返回一个处理过的UIImage.
 */
+ (UIImage *)scaleImage:(UIImage *)image toSize:(CGSize)size;
/**
 @abstract 根据scaleSize的大小来等比例放大缩小UIImage.
 @param image 需要处理的UIImage.
 @param scaleSize 需要处理到的比例.
 @returns 返回一个处理过的UIImage.
 */
+ (UIImage *)scaleImage:(UIImage *)image toScale:(float)scaleSize;
/**
 @abstract 将一个UIView截图成为一个UIImage.
 @param view 需要截图的UIVIEW.
 @returns 返回UIVIEW的截图.
 */
+ (UIImage *)transferViewToImage:(UIView *)view;
/**
 @abstract 将一个UIImage添加高斯模糊效果.
 @param image 需要处理的UIImage.
 @param blur 高斯模糊的等级.
 @returns 返回一个加过高斯模糊的UIImage.
 */
+ (UIImage *)transferBlurImage:(UIImage *)image withBlurLevel:(CGFloat)blur;

/**
 色块图片
 
 @param color 颜色值
 @param size 生成图片的大小
 @return 新生成的图片
 */
+ (UIImage *)imageWithColor:(UIColor *)color size:(CGSize)size;



/**
 遍历APP内所有字体名称
 */
+(void)scanAPPAllFontsName;

+ (BOOL)isGetAuthorizationForApplication:(AuthorizationForApplication)app;


+(UILabel *)createLabel_text:(NSString *)text font:(NSInteger)fontSize textColor:(UIColor *)color;

+(UILabel *)createLabel_text:(NSString *)text boldFont:(NSInteger)fontSize textColor:(UIColor *)color;
@end

